package com.donleo.stmg.entity.mapper;

import com.donleo.stmg.entity.model.Sign;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.donleo.stmg.entity.model.User;
import com.donleo.stmg.entity.vo.SignVo;
import com.donleo.stmg.entity.vo.UserVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 签到表 Mapper 接口
 * </p>
 *
 * @author liangd
 * @since 2020-12-21
 */
public interface SignMapper extends BaseMapper<Sign> {
    /**
     * 查询所有学生用户
     *
     * @param userVo
     * @return
     */
    List<User> findAllStudent(UserVo userVo);

    /**
     * 统计条数
     *
     * @param userVo
     * @return
     */
    long getCountStudent(UserVo userVo);

    /**
     * 根据用户编号当天已签到的学生
     *
     * @param userCode   用户编号
     * @param currentDay 当天日期
     * @param nextDay    下一天
     * @return
     */
    List<User> findSignedStudent(@Param("userCode") String userCode,
                                 @Param("currentDay") String currentDay,
                                 @Param("nextDay") String nextDay);

    /**
     * 根据用户编号查询当前用户所在小组
     *
     * @param userCode
     * @return
     */
    List<User> findTeamMemberByUserCode(@Param("userCode") String userCode);

    /**
     * 批量插入签到记录
     *
     * @param lists
     * @return
     */
    int saveSignData(List<Sign> lists);

    /**
     * 模糊查询签到记录
     *
     * @param userVo
     * @return
     */
    List<UserVo> findAllSignRecord(UserVo userVo);

    /**
     * 统计签到记录条数
     *
     * @param userVo
     * @return
     */
    long getCountSignRecord(UserVo userVo);

    /**
     * 查询单个
     * @param id
     * @return
     */
    SignVo findById(Integer id);
}
